package cn.fl.spl.service;

import cmm.mid.core.framework.page.DataResultVO;
import cmm.mid.core.framework.page.Pager;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.spl.vo.SplRenewProtocolRecVO;
import fl.spl.facade.spl.condition.SplRenewProtocolRecQC;

import java.util.List;
import java.util.Map;

/**
 * Created by jiangzhongge on 2018-7-10.
 * Time 10:59.
 * Class belongs to fl-ass-service.
 *
 * @DESC 供应商续签协议 DTO接口
 */
public interface ISplRenewProtocolRecService {


    /**
     * 新增
     *
     * @param entity
     * @return
     */
    public Long addSplRePtlRecVO(SplRenewProtocolRecVO entity) throws BaseException;

    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    public boolean removeSplRePtlRecVOByIds(List<Long> ids, Long mdfUsrId) throws BaseException;

    /**
     * 修改
     *
     * @param entity
     * @return
     */
    public boolean modifySplRePtlRecVO(SplRenewProtocolRecVO entity) throws BaseException;

    /**
     * 通过QC，修改供应商续签协议
     *
     * @param condition
     * @param mdfMap
     * @return
     * @throws BaseException
     */
    public boolean updateSplRePtlRecVOByQC(SplRenewProtocolRecQC condition, Map<String, String> mdfMap) throws BaseException;

    /**
     * 获取唯一对象
     *
     * @param id 主键
     * @return 对象DTO
     */
    public SplRenewProtocolRecVO selectSplRePtlRecVOById(Long id) throws BaseException;

    /**
     * 分页查询所有
     *
     * @param page
     * @return
     */
    public Pager searchSplRePtlRecVOByPage(Pager page) throws BaseException;

    /**
     * 根据条件查询所有
     *
     * @param condition
     * @return
     */
    public List<SplRenewProtocolRecVO> searchSplRePtlRecVOList(SplRenewProtocolRecQC condition) throws BaseException;
    
    /**
     * 发起协议续签流程
     */
    public DataResultVO addRenewProtocolFlow(SplRenewProtocolRecVO vo, String buOrgCd, String sysCd, String orgCd) throws BaseException;

}
